home *** CD-ROM | disk | FTP | other *** search
-
-
-
- XXXXrrrrmmmmGGGGeeeettttRRRReeeessssoooouuuurrrrcccceeee((((3333XXXX11111111))))XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666))))XXXXrrrrmmmmGGGGeeeettttRRRReeeessssoooouuuurrrrcccceeee((((3333XXXX11111111))))
-
-
-
- NNNNAAAAMMMMEEEE
- XrmGetResource, XrmQGetResource, XrmQGetSearchList,
- XrmQGetSearchResource - retrieve database resources and
- search lists
-
- SSSSYYYYNNNNTTTTAAAAXXXX
- Bool XrmGetResource(_d_a_t_a_b_a_s_e, _s_t_r__n_a_m_e, _s_t_r__c_l_a_s_s,
- _s_t_r__t_y_p_e__r_e_t_u_r_n, _v_a_l_u_e__r_e_t_u_r_n)
- XrmDatabase _d_a_t_a_b_a_s_e;
- char *_s_t_r__n_a_m_e;
- char *_s_t_r__c_l_a_s_s;
- char **_s_t_r__t_y_p_e__r_e_t_u_r_n;
- XrmValue *_v_a_l_u_e__r_e_t_u_r_n;
-
- Bool XrmQGetResource(_d_a_t_a_b_a_s_e, _q_u_a_r_k__n_a_m_e, _q_u_a_r_k__c_l_a_s_s,
- _q_u_a_r_k__t_y_p_e__r_e_t_u_r_n, _v_a_l_u_e__r_e_t_u_r_n)
- XrmDatabase _d_a_t_a_b_a_s_e;
- XrmNameList _q_u_a_r_k__n_a_m_e;
- XrmClassList _q_u_a_r_k__c_l_a_s_s;
- XrmRepresentation *_q_u_a_r_k__t_y_p_e__r_e_t_u_r_n;
- XrmValue *_v_a_l_u_e__r_e_t_u_r_n;
-
- typedef XrmHashTable *XrmSearchList;
-
- Bool XrmQGetSearchList(_d_a_t_a_b_a_s_e, _n_a_m_e_s, _c_l_a_s_s_e_s,
- _l_i_s_t__r_e_t_u_r_n, _l_i_s_t__l_e_n_g_t_h)
- XrmDatabase _d_a_t_a_b_a_s_e;
- XrmNameList _n_a_m_e_s;
- XrmClassList _c_l_a_s_s_e_s;
- XrmSearchList _l_i_s_t__r_e_t_u_r_n;
- int _l_i_s_t__l_e_n_g_t_h;
-
- Bool XrmQGetSearchResource(_l_i_s_t, _n_a_m_e, _c_l_a_s_s, _t_y_p_e__r_e_t_u_r_n,
- _v_a_l_u_e__r_e_t_u_r_n)
- XrmSearchList _l_i_s_t;
- XrmName _n_a_m_e;
- XrmClass _c_l_a_s_s;
- XrmRepresentation *_t_y_p_e__r_e_t_u_r_n;
- XrmValue *_v_a_l_u_e__r_e_t_u_r_n;
-
- AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
- _c_l_a_s_s Specifies the resource class.
-
- _c_l_a_s_s_e_s Specifies a list of resource classes.
-
- _d_a_t_a_b_a_s_e Specifies the database that is to be used.
-
- _l_i_s_t Specifies the search list returned by
- _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t.
-
- _l_i_s_t__l_e_n_g_t_h
- Specifies the number of entries (not the byte
-
-
-
- Page 1 (printed 10/3/02)
-
-
-
-
-
-
- XXXXrrrrmmmmGGGGeeeettttRRRReeeessssoooouuuurrrrcccceeee((((3333XXXX11111111))))XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666))))XXXXrrrrmmmmGGGGeeeettttRRRReeeessssoooouuuurrrrcccceeee((((3333XXXX11111111))))
-
-
-
- size) allocated for list_return.
-
- _l_i_s_t__r_e_t_u_r_n
- Returns a search list for further use.
-
- _n_a_m_e Specifies the resource name.
-
- _n_a_m_e_s Specifies a list of resource names.
-
- _q_u_a_r_k__c_l_a_s_s
- Specifies the fully qualified class of the value
- being retrieved (as a quark).
-
- _q_u_a_r_k__n_a_m_e
- Specifies the fully qualified name of the value
- being retrieved (as a quark).
-
- _q_u_a_r_k__t_y_p_e__r_e_t_u_r_n
- Returns the representation type of the destination
- (as a quark).
-
- _s_t_r__c_l_a_s_s Specifies the fully qualified class of the value
- being retrieved (as a string).
-
- _s_t_r__n_a_m_e Specifies the fully qualified name of the value
- being retrieved (as a string).
-
- _s_t_r__t_y_p_e__r_e_t_u_r_n
- Returns the representation type of the destination
- (as a string).
-
- _t_y_p_e__r_e_t_u_r_n
- Returns data representation type.
-
- _v_a_l_u_e__r_e_t_u_r_n
- Returns the value in the database.
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- The _X_r_m_G_e_t_R_e_s_o_u_r_c_e and _X_r_m_Q_G_e_t_R_e_s_o_u_r_c_e functions retrieve a
- resource from the specified database. Both take a fully
- qualified name/class pair, a destination resource
- representation, and the address of a value (size/address
- pair). The value and returned type point into database
- memory; therefore, you must not modify the data.
-
- The database only frees or overwrites entries on
- _X_r_m_P_u_t_R_e_s_o_u_r_c_e, _X_r_m_Q_P_u_t_R_e_s_o_u_r_c_e, or _X_r_m_M_e_r_g_e_D_a_t_a_b_a_s_e_s. A
- client that is not storing new values into the database or
- is not merging the database should be safe using the address
- passed back at any time until it exits. If a resource was
- found, both _X_r_m_G_e_t_R_e_s_o_u_r_c_e and _X_r_m_Q_G_e_t_R_e_s_o_u_r_c_e return _T_r_u_e;
- otherwise, they return _F_a_l_s_e.
-
-
-
- Page 2 (printed 10/3/02)
-
-
-
-
-
-
- XXXXrrrrmmmmGGGGeeeettttRRRReeeessssoooouuuurrrrcccceeee((((3333XXXX11111111))))XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666))))XXXXrrrrmmmmGGGGeeeettttRRRReeeessssoooouuuurrrrcccceeee((((3333XXXX11111111))))
-
-
-
- The _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t function takes a list of names and
- classes and returns a list of database levels where a match
- might occur. The returned list is in best-to-worst order
- and uses the same algorithm as _X_r_m_G_e_t_R_e_s_o_u_r_c_e for
- determining precedence. If list_return was large enough for
- the search list, _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t returns _T_r_u_e; otherwise,
- it returns _F_a_l_s_e.
-
- The size of the search list that the caller must allocate is
- dependent upon the number of levels and wildcards in the
- resource specifiers that are stored in the database. The
- worst case length is %3 sup n%, where _n is the number of
- name or class components in names or classes.
-
- When using _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t followed by multiple probes for
- resources with a common name and class prefix, only the
- common prefix should be specified in the name and class list
- to _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t.
-
- The _X_r_m_Q_G_e_t_S_e_a_r_c_h_R_e_s_o_u_r_c_e function searches the specified
- database levels for the resource that is fully identified by
- the specified name and class. The search stops with the
- first match. _X_r_m_Q_G_e_t_S_e_a_r_c_h_R_e_s_o_u_r_c_e returns _T_r_u_e if the
- resource was found; otherwise, it returns _F_a_l_s_e.
-
- A call to _X_r_m_Q_G_e_t_S_e_a_r_c_h_L_i_s_t with a name and class list
- containing all but the last component of a resource name
- followed by a call to _X_r_m_Q_G_e_t_S_e_a_r_c_h_R_e_s_o_u_r_c_e with the last
- component name and class returns the same database entry as
- _X_r_m_G_e_t_R_e_s_o_u_r_c_e and _X_r_m_Q_G_e_t_R_e_s_o_u_r_c_e with the fully qualified
- name and class.
-
- MMMMAAAATTTTCCCCHHHHIIIINNNNGGGG RRRRUUUULLLLEEEESSSS
- The algorithm for determining which resource database entry
- matches a given query is the heart of the resource manager.
- All queries must fully specify the name and class of the
- desired resource (use of the characters ``*'' and ``?'' are
- not permitted). The library supports up to 100 components
- in a full name or class. Resources are stored in the
- database with only partially specified names and classes,
- using pattern matching constructs. An asterisk (*) is a
- loose binding and is used to represent any number of
- intervening components, including none. A period (.) is a
- tight binding and is used to separate immediately adjacent
- components. A question mark (?) is used to match any single
- component name or class. A database entry cannot end in a
- loose binding; the final component (which cannot be the
- character ``?'') must be specified. The lookup algorithm
- searches the database for the entry that most closely
- matches (is most specific for) the full name and class being
- queried. When more than one database entry matches the full
- name and class, precedence rules are used to select just
-
-
-
- Page 3 (printed 10/3/02)
-
-
-
-
-
-
- XXXXrrrrmmmmGGGGeeeettttRRRReeeessssoooouuuurrrrcccceeee((((3333XXXX11111111))))XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666))))XXXXrrrrmmmmGGGGeeeettttRRRReeeessssoooouuuurrrrcccceeee((((3333XXXX11111111))))
-
-
-
- one.
-
- The full name and class are scanned from left to right (from
- highest level in the hierarchy to lowest), one component at
- a time. At each level, the corresponding component and/or
- binding of each matching entry is determined, and these
- matching components and bindings are compared according to
- precedence rules. Each of the rules is applied at each
- level before moving to the next level, until a rule selects
- a single entry over all others. The rules, in order of
- precedence, are:
-
- 1. An entry that contains a matching component (whether
- name, class, or the character ``?'') takes precedence
- over entries that elide the level (that is, entries
- that match the level in a loose binding).
-
- 2. An entry with a matching name takes precedence over
- both entries with a matching class and entries that
- match using the character ``?''. An entry with a
- matching class takes precedence over entries that match
- using the character ``?''.
-
- 3. An entry preceded by a tight binding takes precedence
- over entries preceded by a loose binding.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- XrmInitialize(3X11), XrmMergeDatabases(3X11),
- XrmPutResource(3X11), XrmUniqueQuark(3X11)
- _X_l_i_b - _C _L_a_n_g_u_a_g_e _X _I_n_t_e_r_f_a_c_e
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 4 (printed 10/3/02)
-
-
-
-